#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_RECORDS 100 // 定义最大记录数
#define MAX_LENGTH 100  // 定义每条记录的最大长度

// 检查是否可以根据出勤记录获得奖励的函数
int can_receive_award(char records[][MAX_LENGTH], int count) {
    int absent_count = 0; // 缺席计数
    for (int i = 0; i < count; ++i) {
        // 如果记录为"absent"，增加缺席计数
        if (strcmp(records[i], "absent") == 0) {
            ++absent_count;
            // 如果缺席超过一次，则不符合条件
            if (absent_count > 1) return 0; // false
        }
        // 如果记录为"late"或"leaveearly"，检查前一天是否也为"late"或"leaveearly"
        if (strcmp(records[i], "late") == 0 || strcmp(records[i], "leaveearly") == 0) {
            if (i > 0 && (strcmp(records[i - 1], "late") == 0 || strcmp(records[i - 1], "leaveearly") == 0)) {
                return 0; // false
            }
        }
        // 检查连续7天内，非"present"的记录是否超过3次
        if (i >= 6) {
            int count_in_7_days = 0;
            for (int j = i - 6; j <= i; ++j) {
                if (strcmp(records[j], "present") != 0) ++count_in_7_days;
            }
            if (count_in_7_days > 3) return 0; // false
        }
    }
    return 1; // true，符合条件
}

int main() {
    int test_cases;
    scanf("%d", &test_cases); // 读取测试用例的数量

    for (int t = 0; t < test_cases; ++t) {
        char records[MAX_RECORDS][MAX_LENGTH]; // 存储记录的数组
        int records_size = 0; // 记录的实际数量

        // 循环读取每条记录，直到检测到换行符
        while (scanf("%s", records[records_size]) == 1) {
            records_size++;
            if (getchar() == '\n') break; // 如果检测到换行符，跳出循环
        }

        // 输出结果，如果符合条件输出"true"，否则输出"false"
        printf("%s ", can_receive_award(records, records_size) ? "true" : "false");
    }
    printf("\n");
    return 0;
}

